perm filename SPRINT.FAI[COL,LCS] blob
sn#414570 filedate 1979-01-31 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 TITLE SPRINT
C00008 ENDMK
C⊗;
TITLE SPRINT
INTERNAL FORNAM,RNDINT,RAND,PARAM
EXTERNAL .COMM.,C,P,PL,FILES. ;WRITING ON DSK (DEV.1 ONLY!)
;FORTRAN CALLABLE RANDOM NUMBER GENERATOR
;
;USE CALL RNDINT TO INITIALIZE THE GENERATOR
; (THE GENERATOR IS LOADED INITIALIZED)
;USE RAND(XL,XH) AS A FUNCTION TO RETURN THE NEXT
; RANDOM NUMBER BETWEEN XL AND XH
; (XL,XH ARE FLOATING POINT,RAND RETURNS
; FLOATING POINT)
;
RNDINT: 0
MOVE 0,[756132257563]
MOVEM 0,R1
ADDI 0,2
MOVEM 0,R2
JRA 16,0(16)
R1: 756132257563
R2: 756132257565
RAND: 0
MOVEM 1,TEMP
MOVE 0,@0(16)
MOVE 1,@1(16)
FSBR 1,0
MOVEM 0,LLIM#
MOVE 0,R1
ADD 0,R2
EXCH 0,R2
MOVEM 0,R1
LSH 0,-11
FSC 0,200
FMP 0,1
FAD 0,LLIM
MOVE 1,TEMP
JRA 16,2(16)
TEMP: 0
;A←1
;B←2
;CC←3
;D←4
;PP←17
FORNAM: 0 ;CALL FORNAM(NAME,EXT)
;CHANGES NAMES TO SIXBIT THIS IS TO PUT EXTENSIONS OTHER
MOVE 0,@0(16) ;THAN .DAT ON OUTPUT
MOVEM 0,FN#
MOVE 1,[POINT 7,FN]
INTF3: MOVE 2,[POINT 6,NAM]
SETZM NAM
MOVEI 3,5
INTF1: ILDB 0,1
CAIN 0," "
JRST INTF2
SUBI 0,40
IDPB 0,2
SOJG 3,INTF1
INTF2: MOVE 0,@1(16)
MOVEM 0,EX#
MOVE 1,[POINT 7,EX]
EXTF3: MOVE 2,[POINT 6,EXT]
SETZM EXT
MOVEI 3,5
EXTF1: ILDB 0,1
CAIN 0," "
JRST EXTF2
SUBI 0,40
IDPB 0,2
SOJG 3,EXTF1
EXTF2: MOVE 0,NAM#
MOVEM 0,FILES.
MOVE 0,EXT#
MOVEM 0,FILES.+1
JRA 16,2(16)
;C FUNCTION PARAM(X,K)
;C COMMON J,L /P/P(1) /PL/PL(1) /C/T,NWZZ,IT3,T6,NW,TDUR,A,
;C 1 T2,T4,BY,KODE,NPAR,LP,TBG,AC,NPA,BX,IDF,PM,NM,PAR,PX2
PARAM: 0 ;C K=0
SETZ 2,
; IF K IS NOT ZERO UPON RETURN, THEN WE'VE FOUND INFO IN OTHER PARAM.
MOVE 0,@(16) ;C PARAM=X
CAMG 0,[-9999.0] ;CC IF(X.GT.-9999.0)RETURN
CAMG 0,[-10000.0] ;CC IF(X.LE.-10000.0)RETURN
JRST PAR2 ;GO TO PAR2
MOVN 2,0
FADR 2,[-9999.0] ;CC K=-(X+9999.0)*100.+.1
FMPR 2,[100.0]
FADR 2,[0.1] ;FOR ROUND-OFF
KIFIX 2,2
MOVE 0,P-1(2) ;CC PARAM=P(K) ;AC 0 = PARAM
; GET DATA FROM PARAM K
MOVE 1,PL-1(2) ;CC PM=PL(K)
MOVEM 1,C+=18
MOVE 1,.COMM.+1 ;CC IF(L.NE.2)RETURN ;;L=LPAR (CURRENT PARAM#)
CAIE 1,2 ;C L=CALLING PARAM NUM., K=PARAM REFERRED TO.
JRST PAR2 ;GO TO PAR2
CAIN 2,2 ;CC IF(K.EQ.2)PARAM=PX2
MOVE 0,C+=21;MUST USE 'UNPROCESSED' FORM OF P2 (I.E. NO 'TEMPO' CHANGES)
PAR2: MOVEM 2,@1(16) ;SEND BACK VALUE OF K
JRA 16,2(16) ;CC END
END